﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ParasitoLibrary.Core.Entidade;
using System.Xml.Linq;
using System.IO;

namespace ParasitoLibrary.DataAccess
{
    public partial class DAOQuestao : DAOEntidadeParasitoAbstrata<Questao>
    {
        public const string DIRETORIO_ARQUIVO_QUESTAO = @"perguntas\";
        public const string CAMINHO_ARQUIVO_QUESTAO = DIRETORIO_ARQUIVO_QUESTAO;

        public override Questao criarEntidade(XElement xElement)
        {
            Questao questao = new Questao(xElement);
            return questao;
        }

        public override String getDiretorioArquivosXML()
        {
            return DIRETORIO_ARQUIVO_QUESTAO;
        }

        public override String getCaminhoArquivoXML()
        {
            return CAMINHO_ARQUIVO_QUESTAO;
        }

        public override IList<Questao> carregarEntidades()
        {
            DirectoryInfo directoryInfo = new DirectoryInfo(this.getDiretorioArquivosXML());
            FileInfo[] arrayFileInfo = directoryInfo.GetFiles("*.xml");
            IList<Questao> listaQuestao = new List<Questao>();
            XDocument xDocument = null;

            foreach(FileInfo fileInfo in arrayFileInfo) {
                xDocument = XDocument.Load(fileInfo.FullName);
                listaQuestao.Add(this.criarEntidade(xDocument));
            }

            return listaQuestao;
        }

        public override Questao consultarPorCodigo(string codigo)
        {
            return new Questao();
        }
    }
}
